Multiple operating system quick boot utility

ABSTRACT

A computerized user interface for assisting a computer user selects a default operating system for a computer. The computerized interface operates during a current computing session and provides a list of operating systems available. A user can make a selection using standard activatible controls such as icons, alphanumeric lists and highlighting. Once selected, an operating becomes the default operating system software on the computer. Therefore, during the next startup of the computer a selected operating system will boot unless there is some other intervention. In addition to selecting an operating system, this invention can also be used to cause the computer to restart. Restart can be set to execute immediately or to execute upon a change in the default operating system. In addition this invention can be caused to uninstall thereby erasing the program files relating to this invention.

BACKGROUND

[0001] The present invention relates to computer software utilityprograms, and more specifically, to a software program designed tosimplify a choice of operating systems to load upon reboot of acomputer.

[0002] In a computing environment that takes advantage of more than oneoperating system, the choice of which operating system will load into acomputer upon startup has traditionally been determined by a user duringthe computer startup sequence. Typically, a user waits for a loadutility to present a menu during a startup routine. A load utility menuwill present a list of available operating systems. A user can select adesired operating system to load during an imminent computing session.Most load utility menus are designed such that the ability to choose anoperating system is only available for some window of time. If nointervening action is taken during that window of time, the computerreverts to a default operating system and proceeds with the bootsequence.

[0003] During a computing session if it is required that a differentoperating system be utilized, the computer must be rebooted and aselection must be made from the menu during the computer startupsequence. Rebooting of a computer can be a lengthy process, oftenlasting several minutes. A user needs to be attentive during a typicalreboot procedure and make a timely choice from a menu designatingoperating systems. A window of time allotted a user during which theuser has the opportunity to designate a choice of operating systems mayonly last seconds. A user that is not attentive may let this window oftime pass, wherein a computer will continue to boot using a defaultoperating system. If the default operating system is not the system ofchoice for the user, the user will need to wait until the defaultoperating system finishes loading and then shut it down, starting thesequence over again. It would be useful to have a means of designatingfrom a current computing session an operating system to load upon thenext computer start sequence.

[0004] Every general purpose computer must have an operating system torun application programs. An operating system performs basic tasks suchas recognizing input from a keyboard, sending output to a displayscreen, keeping track of files and directories on a disk and controllingperipheral devices such as disk drives and printers. FIG. 1. Inaddition, all operating systems make sure that different programsrunning at the same time do not interfere with each other and providefor security against unauthorized users.

[0005] Application programs run on an operating system, therefore, anapplication program must be written to run on a particular operatingsystem. A user's choice of operating system is often determined by theapplications that will be run. Popular operating systems for computersinclude DOS, Windows™, Windows 95™, Windows NT™, OS/2™, and Linux.Advanced users may wish to have Windows NT™, OS/2™ and Linux on the samemachine. Technicians and support type personnel who wish to emulatedifferent operating environments of various users can also find multipleoperating systems useful. In addition, developers may need severalversions of the same operating system available. With enough disk space,it is possible to have multiple operating systems on one machine.

[0006] During typical start up of a computer, the first program toexecute is the power on self-test program or POST. Following POST, abasic input output system or BIOS runs. Amongst other things, BIOS isresponsible for directing a computer to a boot sector of a disk on whichan operating system is installed. Having identified a correct disk andsector, Read Only Memory (ROM) that holds the BIOS initializes code toread the first record from that disk into storage. The first record isreferred to as a master boot record or MBR. Computer hard drives can bepartitioned such that each partition can potentially hold a differentoperating system. A MBR will look to the partition table and choose aprimary partition that is marked active or startable. The MBR programcan read the first 512 byte sector from the active primary partition.This first sector commonly comprises an operating system loader program.

[0007] When utilizing multiple operating systems, it is sometimespreferable to have the MBR boot load a loader utility. A loader utilitycan specify information about logical partitions and locate operatingsystems stored on them. One example of a loader utility is Boot Manager.Boot Manager is part of the OS/2™ operating system. Boot Manager is nota full operating system; it is only a utility to direct a computertowards a full operating system. To run an operating system, BootManager is directed to the first sector of a designated partition orvolume and runs a program contained there.

[0008] A BIOS initialization code locates a first 512 byte record of afirst disk drive and reads code on it comprising a MBR. The MBR thenreads a first sector of an active partition and executes code containedon the active partition. If the active partition is a load utility, theboot manager directs the computer to a first sector of a partition orlogical volume containing code comprising a chosen operating system. Anoperating system may be chosen by operator selection or as a default ofthe boot manager.

[0009] A computer with multiple operating systems can utilize a harddrive with multiple partitions. Each partition may belong to a differentfile system. Generally, an operating system will ignore those partitionswhose ID type represents an unknown file system type. A load utility istypically installed in its own non-DOS, 1 megabyte, primary partition onthe first hard drive. In this way, ROM or BIOS initialization code firstaccesses the master boot record. The master boot record sees that a loadutility partition is active and loads that program into memory. The loadutility presents a menu on a display giving a user an opportunity tomake a selection from available operating systems. A computer boots to adefault system if there is no response from a user within a window oftime comprising a time out period.

[0010] In a similar fashion, Windows NT™ uses a utility called the NTloader. With Windows NT™, the NT boot sector loads a hidden program. Thehidden program displays a boot selection menu based on information in aplain text data set, such as a boot.ini file. Typical to a load utility,NT loader gives a user a specified time out period to select an optionfrom the menu. If nothing is entered, Windows NT™ is loaded by default.

[0011] Typically, a boot sector manager will reference a boot.ini file.Amongst other information the boot.ini file can contain a list ofdifferent operating systems available to the computer upon boot up. Inaddition a boot.ini can store information such as how many seconds amenu for user selection of the operating system is made available to auser before a default operating system loads.

[0012] Operating system product vendors sometimes support rebooting intoa different interface of their own proprietary operating systems from acurrent computing session. For instance, Microsoft Windows 95™ includesthe capability of rebooting into a DOS interface. It would be useful fora utility to be available from a standard operating system interfacethat allows for selection of an operating system to load upon reboot ofa computer. Such a utility would provide a customizable, user friendly,operating system selection interface. In order to be most useful such aninterface should be simple enough so as not to require explanation onhow to implement a change in operating system software.

SUMMARY OF THE INVENTION

[0013] Accordingly, the present invention provides a method andapparatus for specifying an operating system of choice during a currentcomputing session such that upon reboot, a computer will boot up into aspecified operating system. Generally, a computerized user interface 400is provided to assist a user in the selection of a software operatingsystem to be used on a computer. A selected operating system is set toload by default upon the next start up of the computer. Computerexecutable program code, i.e. software, running on a computer directsthe computer to perform desired functions relating to selection andloading of an operating system on a computer. This invention alsocomprises a computer readable medium onto which program code forimplementing in the computer desired function ability has been stored.

[0014] Computer software running on a computer causes a user interface400 to present to a user a list of available operating systems for thecomputer. This computerized user interface 400 allows a user to select adesired operating system via a user activatible control. Useractivatible controls include, for example, clicking on an icon,cursoring to a selection until it is highlighted, selecting analphanumeric designation corresponding with a desired operating system,typing out the selection or other known activatible control mechanismsfor making a selection from a display. An operating system correlatingwith the selection made by the user is made to load upon restarting ofthe computer.

[0015] Providing an interface for other options related to the selectionof an operating system also comprise this invention. Other options thatcan be made a part of the interface include causing an immediate restartor reboot of the computer with a change in default operating system,restarting the computer in response to an activatible control,specifying a time out period during which a user can override a defaultoperating system, installation of the program code, uninstalling theprogram code, or reinstalling the program code.

BRIEF DESCRIPTION OF THE DRAWINGS

[0016]FIG. 1 is a computer hardware diagram.

[0017]FIG. 2 is a computer network diagram.

[0018]FIG. 3 illustrates the interaction of an Operating System withcomputer components.

[0019]FIG. 4 illustrates one example of a user interface of thisinvention.

[0020]FIG. 5 illustrates a boot icon that can be used as an activatiblecontrol to execute the computer program code.

[0021]FIG. 6 shows the logic flow of an embodiment of this invention.

DETAILED DESCRIPTION OF THE INVENTION

[0022] Referring to FIG. 1, physical resources of a computer system 100are depicted. The computer 100 has a central processor 101 connected toa processor host bus 102 over which it provides data, address andcontrol signals. The processors 101 may be any conventional generalpurpose single- or multi-chip microprocessor such as a Pentium®processor, a Pentium® Pro processor, a Pentium II® processor, a MIPS®processor, a Power PC® processor or an ALPHA® processor. In addition,the processor 101 may be any conventional special purpose microprocessorsuch as a digital signal processor or a graphics processor. Themicroprocessor 101 has conventional address, data, and control linescoupling it to a processor host bus 102.

[0023] The computer 100 includes a system controller 103 having anintegrated RAM memory controller 104. The system controller 103 isconnected to the host bus 102 and provides an interface to random accessmemory 105. The system controller 103 also provides host bus toperipheral bus bridging functions. The controller 103 thereby permitssignals on the processor host bus 102 to be compatibly exchanged withsignals on a primary peripheral bus 110. The peripheral bus 110 may be,for example, a Peripheral Component Interconnect (PCI) bus, an IndustryStandard Architecture (ISA) bus, or a Micro-Channel bus. Additionally,the controller 103 can provide data buffering and data transfer ratematching between the host bus 102 and peripheral bus 110. The controller103 thereby allows, for example, a processor 101 having a 64-bit 66 MHzinterface and a 533 Mbytes/second data transfer rate to interface to aPCI bus 110 having a data path differing in data path bit width, clockspeed, or data transfer rate.

[0024] Accessory devices including, for example, a video displaycontroller 112 and network controller 114 can be coupled to theperipheral bus 110. The network controller 114 may be a modem, anEthernet networking card, a cable modem, or other network access device.The system 100 may also include a secondary peripheral bus 120 coupledto the primary peripheral bus 110 through a bridge controller 111. Thesecondary peripheral bus 120 can be included in the system 100 toprovide additional peripheral device connection points or to connectperipheral devices that are not compatible with the primary peripheralbus 110. For example, in the system 100, the secondary bus 120 may be anISA bus and the primary bus 110 may be a PCI bus. Such a configurationallows ISA devices to be coupled to the ISA bus 120 and PCI devices tobe coupled to the PCI bus 110. The bridge controller 111 can alsoinclude a hard disk drive control interface to couple a hard disk 113 tothe peripheral bus 110.

[0025] The computer 100 also includes non-volatile ROM memory 122 tostore basic computer software routines. ROM 122 may include alterablememory, such as EEPROM (Electronically Erasable Programmable Read OnlyMemory), to store configuration data. For example, EEPROM memory may beused to store hard disk 113 geometry and configuration data. BIOSroutines 123 are included in ROM 122 and provide basic computerinitialization, systems testing, and input/output (I/O) services. Forexample, BIOS routines 123 may be executed by the processor 101 toprocess interrupts that occur when the bridge 111 attempts to transferdata from the ISA bus 120 to the host bus 102 via the bridge 111,peripheral bus 110, and system controller 103. The BIOS 123 alsoincludes routines that allow an operating system to be “booted” from thedisk 113 or from a server computer using a local area network connectionprovided by the network adapter 114. An operating system 252 bootoperation can occur after computer 100 is turned on and power-onself-test (POST) routines stored in the BIOS 123 complete execution, orwhen a reset switch is depressed, or following a software-initiatedsystem reset or a software fault. During the boot process, the processor101 executes BIOS 123 software to access the disk controller 111 ornetwork controller 114 and thereby obtain a high-level operating system.Examples of high-level operating systems are, the Microsoft DiskOperating System (DOS)™, Windows 95™, Windows NT™, a UNIX operatingsystem, the Apple MacOS ™ operating system, or other operating system.

[0026] An operating system may be fully loaded in the RAM memory 105 ormay include portions in RAM memory 105, disk drive storage 113, orstorage at a network location. For example, the Microsoft Windows 95™operating system includes some functionality that remains in memory 105during the use of Windows 95™ and other functionality that isperiodically loaded into RAM memory 105 on an as-needed basis from, forexample, the disk 113. An operating system, such as Windows 95™ orWindows NT™ provides functionality to control computer peripherals suchas devices 310, 320, 330, 350, 360, 370, and 113, and to execute userapplications. User applications may be commercially available softwareprograms such as a word processor, spreadsheet, database, clientsoftware, computer aided drawing and manufacturing software, scientificsoftware, internet access software and many other types of software.User applications may access computer system peripheral controllers112-114, 121, and 124 through an application programming interfaceprovided by the operating system and/or may directly interact withunderlying computer system 100 hardware.

[0027] Referring to FIG. 2, a collection of computers 100 can serve ascomponents of a computer network. A network operating system (NOS) canalso be utilized as a high level operating system. A computer network200 can include a host computer system 210 and client computers 231-236.The client computers 231-236 can communicate with the host 210 to obtaindata stored at the host 210 in databases 214-215. The client computer231-236 may interact with the host computer 210 as if the host was asingle entity in the network 200. However, the host 210 may includemultiple processing and database sub-systems that can be geographicallydispersed throughout the network 200.

[0028] Generally, a computer system running a boot selection softwareprogram facilitating a user's choice of high level operating system 252is disclosed. An executable computer program code running on a computer110, or stored on a computer readable medium 113 or 330, gives a user ofthe computer the ability to select an operating system from a pluralityof available high level operating systems 252. Selection of an operatingsystem 252 causes that operating system 252 to boot when the computer isrestarted.

[0029] Referring now to FIG. 3, a user can activate a user activatiblecontrol presented on a display 310, through use of an input device suchas a keyboard 360 or a pointing device 370, associated with a computer100. Activation of a control causes boot selection software to execute.

[0030] Normal execution of boot selection software provides a userinterface 400. The user interface 400 can be any interface amenable tounderstanding by the user. One embodiment of a user interface comprisesa list of selections that can be made by a user. Selections includevarious operating systems 410 that are available on the computer. Aninterface can include icons 510, radial buttons 420, check buttons 421,push buttons, or other well-known interface mechanisms commonly deployedin graphical user interface programs.

[0031] Referring to FIG. 4, the user interface 400 waits for input froma user. Using a pointing device 370 or keyboard 360 associated with thecomputer 100 a user can scroll through a menu 410 of available operatingsystems 380 presented on the interface. A user activatible controlallows selection of an operating system 380 from the menu presented onthe user interface 400.

[0032] Selection of an operating system 380 causes a default for a loadutility in the computer 100 to be set to the operating system 380selected from the user interface menu 410. As a result, the next timethe computer is started, the default operating system for the loadutility will be the operating system 380 selected from the menu 410.

[0033] One embodiment of a user activatible control suitable to start aboot selection program uses an icon symbolic of a boot 510 worn by aperson. A preferred location for a boot icon would be in the lower righthand corner of a taskbar making the option available to a user at alltimes, even when an application program is set to be viewed at fullscreen mode. Additional locations for a boot icon include on a desktop,in a folder or other location accessible to a user. Other embodiments ofuser Interactive controls suitable to start a boot selection programcomprise for example, using a keyboard mouse or other pointing deviceassociated with the computer to click on a directory entry of theapplication, select an alphanumeric character corresponding to a listcomprising available options, icons 510, radial buttons 420, checkbuttons 421, push buttons, and calling a program from a command lineargument.

[0034] One embodiment of a boot selection program interface includesregions for operating systems 430 and regions for controls 431, and forother procedures 411-414 and 421-424 related to restarting the computer100. Typical procedures can include a Reboot Now 411 procedure forcausing the computer 100 to reboot and various shutdown options. AnEmergency Shutdown procedure 412 of a computer can cause all openapplications to end immediately without any user prompt. Typically, thisis accomplished with an end task command being sent to the openapplication. Emergency powerdown 413 also ends all tasks and sends apower-off command to the computer but seeks confirmation first. AShutdown Computer option 414 can follow standard procedures for poweringdown.

[0035] One embodiment of this invention includes the ability to set anautomatic reboot if a change in operating system 380 is selected. Anautomatic reboot option 422 can be set from the user interface 400. ARadial button 420 or checkbox 421 can be used as typical useractivatable controls for setting this option. Other known means ofselection may also be used. If an automatic reboot option is selected,computer code can cause the computer to restart itself. During restart,the computer will boot the operating system 380 last selected asdefault.

[0036] A force reboot button 423 can cause the computer to restart whena change in operating system 380 is made. Force reboot can include theadditional step of forcing any open applications to close with an endtask command.

[0037] A user interface 400 for a boot selection program can alsocomprise activatable controls to cause the computer to uninstall 424 orreinstall executable program code relating to this invention.Reinstallation can be helpful in that an installation routine can surveythe computer and determine what operating systems are available and onwhich partition each operating system 380 is stored.

[0038] In other embodiments a user interface 400 can offer options toconfigure settings associated with the boot process. These settingsinclude, for example, the number of seconds a load utility will pauseduring the boot process and wait for a user to specify an operatingsystem 380 other than a default operating system 380.

[0039] Options made via the user interface 400 cause the computerprogram code to modify appropriate files relating to each option. Thesefiles would include by way of example the boot.ini file and the filescomprising the computer program code of this invention.

[0040] Referring now to FIG. 6, a logical flow for one embodiment of theinvention is presented. As computer program code is started 610, a userinterface can be presented on a computer screen, the user interface canwait for user input 620. A user can select an operating system to bootduring the next computer boot up 621. The selected operating system canbe set as the default operating system in the Boot Manager 622 of thecomputer. The computer code can then test to see if an option forautomatic reboot is set 625.

[0041] A “yes” response to the test for an automatic reboot option canissue a command to a current operating system to shutdown and restartthe computer 624. After which the application program will terminate640.

[0042] A “no” response to the test for an automatic reboot option canproceed directly to termination of the application 640.

[0043] Many different software languages can be used to implement thisinvention. A preferred embodiment utilizes a compilable language such asC programming language. Other languages such as for example Delphi orBasic will also function well.

[0044] Other implementations are within the scope of the followingclaims.

What is claimed is:
 1. A system for assisting a user in selecting anoperating system for use on an electronic device, system comprising: anelectronic device configured to store, display, and proces information;program code running on said electronic device, the program codeconfigured to perform the method comprising: providing an interactivemenu on a display, said menu comprising a list of operating systemsavailable to run on said electronic device; providing an activatiblecontrol mechanism for selecting one of the operating systems displayedon said menu; and setting a default operating system for a load utilityinstalled on said electronic device to an operating system selected withthe activatible control.
 2. The user interface of claim 1, wherein theprogram code further implements a mechanism to allow a user to set aduration of time comprising a time out period during which the loadutility pauses and allows a user to specify an operating system otherthan the default operating system.
 3. The system of claim 1, wherein theprogram code further comprises a mechanism to cause the electronicdevice to restart, said mechanism for causing the electronic device torestart being executable by a user.
 4. The system of claim 3, whereinthe mechanism for causing the electronic device to restart isautomatically executed if the default operating system is changed. 5.The system of claim 1, wherein a change of the default operating systemcauses a file containing settings for a boot menu to be modified whereinthe file specifies the operating system selected.
 6. The system of claim1, wherein the program code additionally comprises a mechanism foruninstalling the program code.
 7. The system of claim 1, wherein theprogram code additionally comprises a mechanism for reinstalling theprogram code.
 8. The system of claim 1, wherein an installation routinefor installing the program code surveys the electronic device anddetermines the presence of operating systems available on saidelectronic device and the partition on which the operating systemresides.
 9. A method of specifying an operating system of choice,comprising: displaying an interactive menu on a display, said displaylisting the available operating systems; providing a selection mechanismfor selecting an operating system of choice; selecting an operatingsystem of choice via said selection mechanism; and setting the defaultoperating system for a load utility installed on an electronic device tothe operating system selected with the selection mechanism, said defaultoperating system loading by default upon the next electronic devicestart up.
 10. The method of claim 9, further comprising setting aduration of time comprising a time out period during which the loadutility pauses and allows a user to specify an operating system otherthan the default operating system.
 11. The method of claim 9, furthercomprising restarting the electronic device in response to an input madevia an input device calling for the electronic device to restart. 12.The method of claim 9, further comprising causing the electronic deviceto restart automatically if the default operating system is changed. 13.The method of claim 9, further comprising providing a mechanism foruninstalling program code that performs displaying, providing,selecting, and setting.
 14. The method of claim 9, further comprisingproviding a mechanism for reinstalling program code that performs thesteps of displaying, providing, selecting, and setting.
 15. The methodof claim 9, further comprising surveying the electronic device anddetermining the presence of operating systems available on saidelectronic device and the partition on which the operating systemresides.
 16. An article of manufacture comprising an electronic deviceusable medium having a readable code means embodied therein forselecting an operating system comprising: a means for displaying aninteractive menu on a display, and display listing the availableoperating systems; a means for providing a selection mechanism forselecting an operating system of choice; a means for selecting anoperating system of choice via said selection mechanism; and a means forsetting the default operating system for a load utility installed on anelectronic device to the operating system selected with the selectionmechanism, the default operating system loading by default upon the nextelectronic device start up.
 17. A user interface for an electronicdevice displayed by a boot selection program for selecting an operatingsystem, said user interface comprising: a first display region listingavailable operating systems; and a second display region including auser activatible control to select one of the available operatingsystems, wherein a selected operating system is loaded by the electronicdevice upon a subsequent electronic device start up.
 18. The userinterface of claim 17, further comprising a third display region forinitiating a command to restart the electronic device, said third regionincluding user activatible controls to specify when the electronicdevice should restart.
 19. The user interface of claim 17, wherein theinterface is displayed upon clicking an icon of a boot.
 20. A programmedelectronic device for selecting an operating system comprising: a memoryfor storing executable program code; a processor for executingexecutable program code stored in said memory; and executable programcode stored in said memory responsive to a command to select anoperating system so as to set a selected operating system as the defaultoperating system of a loaded utility resident on the programmedelectronic device.
 21. A method of specifying an operating system ofchoice, comprising: displaying a graphical user interface on a display,said display listing the available operating systems; and setting thedefault operating system for a load utility installed on an electronicdevice to the operating system selected with the graphical userinterface, said default operating system loading by default upon thenext electronic device start up.
 22. The method of claim 21, furthercomprising setting a duration of time comprising a time out periodduring which the load utility pauses and allows a user to specify anoperating system other than the default operating system.
 23. The methodof claim 21, further comprising specifying an operating system of choiceon an electronic device and comprising restarting the electronic devicein response to an input made via an input device calling for theelectronic device to restart.
 24. A system for specifying an operatingsystem of choice, comprising: means for displaying an graphical userinterface on a display, said graphical user interface identifying theavailable operating systems; and means for setting the default operatingsystem for a load utility installed on an electronic device to theoperating system selected with the graphical user interface, saiddefault operating system loading by default upon the next electronicdevice start up.
 25. The system of claim 24, further comprising meansfor setting a duration of time comprising a time out period during whichthe load utility pauses and allows a user to specify an operating systemother than the default operating system.
 26. The system of claim 25,further comprising means restarting the electronic device in response toan input made via an input device calling for the electronic device torestart.